# 不同氨基酸各原子的半径、类型、表面积、体积
Radius = {
    'A': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
    },
    'R': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'NE': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CZ': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'NH1': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'NH2': [1.65, 'III', 116.8986626400762, 118.8469736840775],
    },
    'D': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'OD1': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'OD2': [1.40, 'II', 98.5203456165759, 91.9523225754709],
    },
    'N': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'OD1': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'ND2': [1.65, 'III', 116.8986626400762, 118.8469736840775],
    },
    'C': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'SG': [1.85, 'VI', 132.7322896141688, 143.7933137486828],
    },
    'E': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'OE1': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'OE2': [1.40, 'II', 98.5203456165759, 91.9523225754709],
    },
    'Q': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'OE1': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'NE2': [1.65, 'III', 116.8986626400762, 118.8469736840775],
    },
    'G': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VI', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
    },
    'H': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'ND1': [1.65, 'I', 116.8986626400762, 118.8469736840775],
        'CD2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CE1': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'NE2': [1.65, 'I', 116.8986626400762, 118.8469736840775],
    },
    'I': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG1': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG2': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD1': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
    },
    'L': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD1': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD2': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
    },
    'K': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CE': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'NZ': [1.50, 'III', 105.6831768667606, 102.1604043045353],
    },
    'M': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'SD': [1.85, 'VIII', 132.7322896141688, 143.7933137486828],
        'CE': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
    },
    'F': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CD1': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CD2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CE1': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CE2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CZ': [1.76, 'V', 125.4827504067450, 132.1751637617714],
    },
    'P': {
        'N': [1.65, 'VI', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CD': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
    },
    'S': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'VI', 134.3709443422812, 146.4643293330865],
        'OG': [1.40, 'I', 98.5203456165759, 91.9523225754709],
    },
    'T': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'VI', 134.3709443422812, 146.4643293330865],
        'OG1': [1.40, 'I', 98.5203456165759, 91.9523225754709],
        'CG2': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
    },
    'W': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CD1': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CD2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'NE1': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CE2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CE3': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CZ2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CZ3': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CH2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
    },
    'Y': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CD1': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CD2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CE1': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CE2': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'CZ': [1.76, 'V', 125.4827504067450, 132.1751637617714],
        'OH': [1.40, 'I', 98.5203456165759, 91.9523225754709],
    },
    'V': {
        'N': [1.65, 'III', 116.8986626400762, 118.8469736840775],
        'CA': [1.87, 'VII', 134.3709443422812, 146.4643293330865],
        'C': [1.76, 'VI', 125.4827504067450, 132.1751637617714],
        'O': [1.40, 'II', 98.5203456165759, 91.9523225754709],
        'CB': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG1': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
        'CG2': [1.87, 'IV', 134.3709443422812, 146.4643293330865],
    },
    'X': {  #非标准残基的任意原子
        'C': [1.8, 'X', 128.67963509104, 137.25827743044],
        'N': [1.6, 'X', 113.09733552923, 113.09733552923],
        'O': [1.4, 'X', 98.5203456165759, 91.9523225754709],
        'P': [1.9, 'X', 136.84777599037, 150.53255358941],
        'S': [1.85, 'X', 132.7322896141688, 143.7933137486828],
        'Se': [1.9, 'X', 136.84777599037, 150.53255358941],
        'I': [2.094, 'X', 153.41070484944, 178.67233424798],
        'F': [1.56, 'X', 110.10151277477, 108.63349260444],
        'Br': [1.978, 'X', 143.39339738146, 161.46096545153],
        'Cl': [1.735, 'X', 123.50511783131, 129.06284813372],
    }
}

Radius_H2O = 1.4

AA = {
    'ALA': 'A', 'CYS': 'C', 'ASP': 'D', 'GLU': 'E', 'PHE': 'F',
    'GLY': 'G', 'HIS': 'H', 'ILE': 'I', 'LYS': 'K', 'LEU': 'L',
    'MET': 'M', 'ASN': 'N', 'PRO': 'P', 'GLN': 'Q', 'ARG': 'R',
    'SER': 'S', 'THR': 'T', 'VAL': 'V', 'TRP': 'W', 'TYR': 'Y',
}

# 离子
Metal = [
    'Al', 'As', 'Au', 'Ba', 'Be', 'Bi', 'Ca', 'Cd', 'Co', 'Cr',
    'Cs', 'Fe', 'Ga', 'Ge', 'Hg', 'K', 'Li', 'Mg', 'Mn', 'Mo',
    'Na', 'Ni', 'Pb', 'Pd', 'Pt', 'Rb', 'Sb', 'Sc', 'Sn', 'Sr',
    'Tc', 'Ti', 'V', 'Zn', 'Zr',
]
